মডেল (Models)

Microsoft Technologies - এএসপি ডট নেট এমভিসি (ASP.Net MVC)
237
237

ASP.Net MVC-তে মডেল হল অ্যাপ্লিকেশনের ডেটা এবং ডেটার সাথে সম্পর্কিত লজিক বা বাণিজ্যিক কার্যক্রমের প্রতিনিধিত্ব। এটি মূলত ডেটাবেসের সাথে কাজ করে এবং ডেটার অবস্থান, ইনপুট এবং প্রসেসিং পরিচালনা করে। মডেলকে অ্যাপ্লিকেশনের "ব্যবসায়িক লজিক" বা "ডেটা লেয়ার" হিসেবে বিবেচনা করা হয়, কারণ এটি ডেটার সঞ্চয়, পুনরুদ্ধার, আপডেট এবং মুছতে সাহায্য করে।


মডেলের ভূমিকা

মডেল ডেটার অবস্থা এবং আচরণ সংজ্ঞায়িত করে এবং ব্যবসায়িক লজিকের উপাদানগুলির জন্য দায়ী থাকে। সাধারণত এটি ডেটাবেস থেকে ডেটা রিট্রাইভ বা স্টোর করে এবং সেই ডেটার প্রক্রিয়া নিয়ে কাজ করে। মডেল এবং ভিউ-এর মধ্যে কোনও সরাসরি যোগাযোগ না থাকায়, এটি অ্যাপ্লিকেশনটির স্থিতিশীলতা এবং আর্কিটেকচারাল নির্মাণের জন্য গুরুত্বপূর্ণ ভূমিকা পালন করে।


মডেল তৈরি

ASP.Net MVC-তে মডেল তৈরি করা বেশ সহজ। সাধারণত, মডেল ক্লাস একটি C# ক্লাস হিসেবে তৈরি করা হয়, যেখানে ডেটার ক্ষেত্র (fields) এবং প্রপার্টি (properties) সংজ্ঞায়িত করা হয়।

উদাহরণ: মডেল ক্লাস

ধরা যাক আমাদের একটি Student (শিক্ষার্থী) মডেল তৈরি করতে হবে, যেখানে শিক্ষার্থীর নাম, রোল নম্বর এবং শ্রেণী রয়েছে।

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Class { get; set; }
}

এখানে, Id, Name, এবং Class হলো মডেলটির প্রপার্টি, যা শিক্ষার্থীর তথ্য ধারণ করে।


মডেলের প্রয়োজনীয়তা

  • ডেটাবেস ইন্টিগ্রেশন: মডেল ডেটাবেসের সাথে যোগাযোগ করতে ব্যবহৃত হয়। Entity Framework বা ADO.NET এর মতো টুল ব্যবহার করে ডেটা সংগ্রহ এবং আপডেট করা হয়।
  • ডেটা ভ্যালিডেশন: মডেলগুলিতে ডেটা ভ্যালিডেশন করার জন্য Data Annotations ব্যবহার করা যায়, যেমন Required, StringLength, Range, ইত্যাদি।
  • ব্যবসায়িক লজিক: মডেল অ্যাপ্লিকেশনের ব্যবসায়িক লজিক যেমন ক্যালকুলেশন বা অন্যান্য প্রক্রিয়া পরিচালনা করতে পারে।

Entity Framework দিয়ে মডেল তৈরি

ASP.Net MVC-তে Entity Framework (EF) ব্যবহার করে ডেটাবেস মডেল তৈরি করা যায়। EF-টি ORM (Object Relational Mapping) টুল, যা ডেটাবেস টেবিলের সাথে সম্পর্কিত ক্লাস তৈরি করে।

উদাহরণ: Entity Framework মডেল

public class StudentContext : DbContext
{
    public DbSet<Student> Students { get; set; }
}

এখানে DbSet<Student> হলো Student ক্লাসের জন্য Entity Framework-এর মডেল। এটি ডেটাবেসে Students টেবিলের সাথে যুক্ত থাকবে।


ডেটা অ্যানোটেশন এবং ভ্যালিডেশন

ডেটা অ্যানোটেশন ব্যবহার করে মডেল ক্লাসে ডেটা ভ্যালিডেশন করা যায়। উদাহরণস্বরূপ, যদি Name প্রপার্টি অবশ্যই পূর্ণ করা উচিত এবং এর সর্বোচ্চ দৈর্ঘ্য ৫০ অক্ষরের মধ্যে থাকতে হবে, তবে আমরা নিচের মতো কোড লিখতে পারি:

public class Student
{
    public int Id { get; set; }

    [Required(ErrorMessage = "Name is required")]
    [StringLength(50, ErrorMessage = "Name cannot be longer than 50 characters")]
    public string Name { get; set; }

    public string Class { get; set; }
}

এখানে, [Required] এবং [StringLength] অ্যানোটেশনগুলি মডেলের ডেটার উপর ভ্যালিডেশন প্রয়োগ করে।


ViewModel এর ব্যবহার

ViewModel হলো একটি কাস্টম মডেল যা সাধারণত ডেটা দৃশ্যের জন্য প্রস্তুত করা হয়। যখন একাধিক মডেল বা বিভিন্ন ধরনের ডেটা ভিউ-তে পাঠাতে হয়, তখন ViewModel ব্যবহৃত হয়।

উদাহরণ: ViewModel

ধরা যাক, আমাদের একটি StudentViewModel রয়েছে, যা Student মডেল এবং একটি অতিরিক্ত ফিল্ড IsEnrolled অন্তর্ভুক্ত করে।

public class StudentViewModel
{
    public Student Student { get; set; }
    public bool IsEnrolled { get; set; }
}

এভাবে, একাধিক তথ্যকে একটি ViewModel-এর মধ্যে রেখে ভিউতে পাঠানো যায়।


মডেলের গুরুত্ব

  • ডেটার সেন্ট্রালাইজড স্টোর: মডেল ডেটার একমাত্র সেন্ট্রালাইজড স্টোর হওয়ায়, অ্যাপ্লিকেশনটির ব্যবসায়িক লজিক এবং ডেটা সহজেই পরিচালিত হতে পারে।
  • ভিউ এবং কন্ট্রোলারের এক্সপ্লিসিট বিচ্ছেদ: মডেলটি ভিউ এবং কন্ট্রোলারের মধ্যে একটি সুসংহত সম্পর্ক স্থাপন করে, যা অ্যাপ্লিকেশনের স্থিতিশীলতা নিশ্চিত করে।
  • টেস্টেবল কোড: মডেল কোড সহজে টেস্ট করা যায়, কারণ এটি একটি স্বতন্ত্র ইউনিট হিসেবে কাজ করে।

সারমর্ম

ASP.Net MVC-তে মডেল হলো ডেটা এবং ব্যবসায়িক লজিকের প্রাথমিক উপাদান, যা ডেটাবেসের সাথে যোগাযোগ এবং ভ্যালিডেশন পরিচালনা করে। এটি View এবং Controller-এর সাথে যোগাযোগের মাধ্যমে অ্যাপ্লিকেশনের কার্যক্রম পরিচালনা করতে সাহায্য করে। Entity Framework এবং Data Annotations ব্যবহার করে মডেল তৈরি এবং ভ্যালিডেশন সহজ হয়।

common.content_added_by

মডেলের ভূমিকা এবং প্রয়োজনীয়তা

192
192

ASP.Net MVC ফ্রেমওয়ার্কে Model অ্যাপ্লিকেশনের ডেটা এবং ব্যবসায়িক লজিক পরিচালনার জন্য ব্যবহৃত হয়। এটি অ্যাপ্লিকেশনের গুরুত্বপূর্ণ একটি উপাদান, যা ডেটার অবস্থা সংরক্ষণ এবং প্রসেসিং নিশ্চিত করে। মডেল সরাসরি ডেটাবেস বা অন্য ডেটা সোর্সের সাথে কাজ করে এবং ডেটা রিট্রাইভ, মডিফাই বা সংরক্ষণ করার জন্য ব্যবহৃত হয়।


মডেলের ভূমিকা

ডেটা পরিচালনা
মডেলের প্রধান দায়িত্ব হলো অ্যাপ্লিকেশনের ডেটা পরিচালনা করা। এটি ডেটাবেস বা অন্য কোনো সোর্স থেকে ডেটা রিট্রাইভ করে এবং প্রয়োজনীয় ক্ষেত্রে ডেটা পরিবর্তন বা সংরক্ষণ করে।

ব্যবসায়িক লজিক
মডেল ব্যবসায়িক লজিক বাস্তবায়ন করে। উদাহরণস্বরূপ, যদি কোনো পণ্যের মূল্য গণনা করতে হয়, তবে এই লজিক মডেলে সংরক্ষিত থাকে।

ডেটার অবস্থা সংরক্ষণ
মডেল অ্যাপ্লিকেশনের ডেটার বর্তমান অবস্থা ধরে রাখে। এটি মূলত ডেটা ক্লাস বা অবজেক্ট হিসেবে কাজ করে, যেখানে ডেটার গঠন এবং অবস্থা সংজ্ঞায়িত থাকে।

মডেল থেকে ভিউ-তে ডেটা পাঠানো
মডেল ডেটা প্রস্তুত করে এবং কন্ট্রোলারের মাধ্যমে ভিউ-তে পাঠায়, যা ব্যবহারকারীর কাছে ডেটা প্রদর্শনের জন্য ব্যবহৃত হয়।


মডেলের প্রয়োজনীয়তা

কোড অর্গানাইজেশন
মডেল ব্যবহার করার মাধ্যমে কোডকে সংগঠিত করা যায়। এটি ডেটা সম্পর্কিত লজিক ভিউ এবং কন্ট্রোলার থেকে আলাদা রাখে, যা অ্যাপ্লিকেশন মডুলার এবং রক্ষণাবেক্ষণযোগ্য করে তোলে।

ডেটার কেন্দ্রীভূত ব্যবস্থাপনা
মডেল অ্যাপ্লিকেশনের ডেটার জন্য একটি কেন্দ্রীয় পদ্ধতি সরবরাহ করে, যা ডেটা পরিচালনা সহজ এবং নির্ভুল করে।

পুনর্ব্যবহারযোগ্যতা
মডেল ব্যবহার করে একবার লিখিত লজিক বিভিন্ন ভিউ বা কন্ট্রোলারের মধ্যে পুনরায় ব্যবহার করা যায়। এটি কোড পুনরাবৃত্তি কমায়।

টেস্টেবিলিটি
মডেল পৃথক হওয়ায় এটি সহজেই টেস্ট করা যায়। এটি ব্যবসায়িক লজিক এবং ডেটার শুদ্ধতা যাচাই করার জন্য গুরুত্বপূর্ণ।

ডেটাবেস ইন্টিগ্রেশন
মডেল ডেটাবেসের সাথে সরাসরি যোগাযোগ করে। Entity Framework বা LINQ ব্যবহার করে ডেটাবেসের CRUD (Create, Read, Update, Delete) অপারেশন সম্পন্ন করা যায়।


উদাহরণ: একটি সাধারণ মডেল

ধরা যাক, আমরা একটি Student মডেল তৈরি করছি, যা শিক্ষার্থীর তথ্য সংরক্ষণ করবে।

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
    public string Class { get; set; }
}

এই মডেল:

  • শিক্ষার্থীর Id, Name, Age, এবং Class তথ্য সংরক্ষণ করে।
  • ডেটাবেস থেকে তথ্য রিট্রাইভ করার সময় এটি ব্যবহৃত হতে পারে।

মডেলের বাস্তব জীবনের প্রয়োগ

ই-কমার্স অ্যাপ্লিকেশন
পণ্যের তথ্য, গ্রাহকের অর্ডার, এবং পেমেন্ট লজিক মডেলের মাধ্যমে পরিচালিত হয়।

ব্যাংকিং সিস্টেম
মডেল ব্যবহার করে অ্যাকাউন্ট ডেটা, ট্রানজেকশন এবং ব্যালেন্স লজিক পরিচালনা করা হয়।

স্কুল ম্যানেজমেন্ট সিস্টেম
শিক্ষার্থী, শিক্ষক এবং পাঠক্রমের তথ্য মডেলের মাধ্যমে সংরক্ষণ এবং পরিচালনা করা হয়।


সারমর্ম

ASP.Net MVC তে মডেল একটি গুরুত্বপূর্ণ উপাদান যা ডেটা এবং ব্যবসায়িক লজিক পরিচালনা করে। এটি ডেটার সঠিক ব্যবস্থাপনা, কোড পুনর্ব্যবহারযোগ্যতা এবং টেস্টিং সহজ করে। মডেলের সঠিক ব্যবহার অ্যাপ্লিকেশনকে আরও কার্যকর এবং সংগঠিত করে তোলে।

common.content_added_by

Entity Framework দিয়ে মডেল তৈরি

215
215

Entity Framework (EF) হল একটি Object-Relational Mapping (ORM) টুল, যা ডেটাবেস এবং কোডের মধ্যে সম্পর্ক তৈরি করতে সহায়ক। EF ব্যবহার করে ডেটাবেসের টেবিলগুলিকে ক্লাসে রূপান্তরিত করা যায় এবং এতে ডেটাবেস অপারেশনগুলি কোডের মাধ্যমে পরিচালনা করা সহজ হয়। ASP.Net MVC অ্যাপ্লিকেশনগুলিতে EF ব্যবহারের মাধ্যমে মডেল তৈরি করা যায়।

নিচে Entity Framework ব্যবহার করে মডেল তৈরি করার প্রক্রিয়া বিস্তারিতভাবে আলোচনা করা হলো।


Entity Framework দিয়ে মডেল তৈরি করার ধাপ

১. Entity Framework ইনস্টল করা
প্রথমে, আপনার প্রজেক্টে Entity Framework Core ইনস্টল করতে হবে। এটি NuGet প্যাকেজ ম্যানেজার ব্যবহার করে সহজেই ইনস্টল করা যায়।

  • Visual Studio তে, "Tools" > "NuGet Package Manager" > "Manage NuGet Packages for Solution..." এ ক্লিক করুন।
  • "Browse" ট্যাব থেকে "Microsoft.EntityFrameworkCore" সার্চ করুন এবং ইনস্টল করুন।

২. মডেল ক্লাস তৈরি করা
EF এর মাধ্যমে মডেল তৈরি করতে প্রথমে একটি ক্লাস তৈরি করতে হবে, যা ডেটাবেসের টেবিলের প্রতিনিধিত্ব করবে। এই ক্লাসে আপনাকে প্রপার্টি এবং তাদের ডেটা টাইপ ডিফাইন করতে হবে।

উদাহরণস্বরূপ, একটি Student মডেল ক্লাস তৈরি করা হলো:

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
    public string Class { get; set; }
}

এখানে Student ক্লাসটি একটি টেবিলের প্রতিনিধিত্ব করছে, যেখানে Id, Name, Age, এবং Class প্রপার্টিগুলি টেবিলের কলামগুলোর প্রতিনিধিত্ব করছে।

৩. DbContext ক্লাস তৈরি করা
EF ডেটাবেসের সাথে যোগাযোগ করার জন্য একটি DbContext ক্লাস ব্যবহার করে। এই ক্লাসে আপনি ডেটাবেসের টেবিলগুলির সাথে যোগাযোগ করার জন্য DbSet প্রপার্টি ডিফাইন করবেন। একটি DbContext ক্লাসের উদাহরণ:

using Microsoft.EntityFrameworkCore;

public class ApplicationDbContext : DbContext
{
    public DbSet<Student> Students { get; set; }

    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
    {
    }
}

এখানে, ApplicationDbContext ক্লাসটি DbContext থেকে ইনহেরিট করছে এবং Students DbSet প্রপার্টি ডিফাইন করা হয়েছে, যা Student মডেল টেবিলের সাথে সম্পর্কিত।

৪. ডেটাবেস কনফিগারেশন করা
আপনার DbContext ক্লাসকে কনফিগার করতে Startup.cs ফাইলের মধ্যে ConfigureServices মেথডে AddDbContext ব্যবহার করতে হবে। এটি ডেটাবেস সংযোগ স্ট্রিং নির্ধারণ করবে।

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}

এখানে, UseSqlServer মেথডটি SQL Server ডেটাবেসের জন্য কনফিগার করা হচ্ছে। আপনি যদি অন্য কোনো ডেটাবেস ব্যবহার করতে চান, তবে সেই ডেটাবেসের জন্য প্রযোজ্য কনফিগারেশন ব্যবহার করতে হবে।

৫. ডেটাবেস মাইগ্রেশন তৈরি করা
Entity Framework Core মাইগ্রেশন ব্যবহার করে ডেটাবেস তৈরি এবং আপডেট করতে সহায়ক। প্রথমে মাইগ্রেশন তৈরি করতে নিচের কমান্ডটি ব্যবহার করতে হবে:

Add-Migration InitialCreate

এই কমান্ডটি Entity Framework কে প্রথম মাইগ্রেশন তৈরি করতে বলবে। এটি আপনার মডেল ক্লাসগুলিকে ডেটাবেস টেবিলগুলিতে রূপান্তরিত করবে।

তারপর, মাইগ্রেশনটি ডেটাবেসে প্রয়োগ করতে নিচের কমান্ডটি ব্যবহার করুন:

Update-Database

এটি ডেটাবেসে মাইগ্রেশন প্রয়োগ করবে এবং আপনার ডেটাবেসের টেবিল তৈরি হবে।

৬. ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করা
এখন আপনি ApplicationDbContext ব্যবহার করে ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করতে পারবেন। উদাহরণস্বরূপ, নতুন Student অ্যাড করতে:

using (var context = new ApplicationDbContext(options))
{
    var student = new Student
    {
        Name = "John Doe",
        Age = 20,
        Class = "10"
    };
    context.Students.Add(student);
    context.SaveChanges();
}

এই কোডটি Students টেবিলের মধ্যে একটি নতুন ছাত্রের রেকর্ড যুক্ত করবে এবং তারপর SaveChanges মেথডের মাধ্যমে সেই পরিবর্তনগুলি ডেটাবেসে সেভ করবে।


সারমর্ম

Entity Framework ব্যবহার করে ASP.Net MVC অ্যাপ্লিকেশনগুলিতে মডেল তৈরি করা অত্যন্ত সহজ এবং কার্যকর। Entity Framework ORM ব্যবহারের মাধ্যমে ডেটাবেসের সাথে যোগাযোগ করা, মডেল তৈরি করা, এবং ডেটাবেস মাইগ্রেশন পরিচালনা করা সম্ভব। এর মাধ্যমে ডেভেলপাররা কম কোডে ডেটাবেস অপারেশন করতে পারেন, যা ডেভেলপমেন্ট প্রক্রিয়া দ্রুত এবং কার্যকর করে তোলে।

common.content_added_by

Data Annotation এবং Validation

250
250

ASP.Net MVC-তে Data Annotation এবং Validation গুরুত্বপূর্ণ ভূমিকা পালন করে, কারণ এগুলি ব্যবহারকারীর ইনপুটের সঠিকতা পরীক্ষা করতে সাহায্য করে। এই প্রযুক্তি ব্যবহার করে ডেভেলপাররা মডেল ক্লাসের মধ্যে ডেটা ভ্যালিডেশন সহজে সংজ্ঞায়িত করতে পারেন এবং ফর্ম সাবমিশন বা মডেল বাইন্ডিংয়ের সময় ডেটার সঠিকতা নিশ্চিত করতে পারেন।


Data Annotation কী?

Data Annotation একটি লেবেল বা অ্যাট্রিবিউটের মাধ্যমে মডেল ক্লাসে ডেটার বৈধতা সংজ্ঞায়িত করার একটি পদ্ধতি। Data Annotation ব্যবহার করে বিভিন্ন প্রকারের বৈধতা, যেমন Required, StringLength, Range, EmailAddress, ইত্যাদি, মডেল ক্লাসে সহজেই প্রয়োগ করা যায়।

Data Annotation-এর মাধ্যমে মডেল ক্লাসে অ্যাট্রিবিউট ব্যবহার করা হয় যা ডেটার বৈধতা এবং ফর্ম্যাট নির্ধারণ করে। এটি C# কোডের মধ্যে যুক্ত থাকে এবং একে অপরের সাথে সম্পর্কিত থাকে।


Data Annotation অ্যাট্রিবিউটগুলির কিছু উদাহরণ

1. Required

এই অ্যাট্রিবিউটটি একটি প্রোপার্টি বা ফিল্ডের জন্য প্রয়োজনীয়তা নির্দেশ করে, অর্থাৎ, ফিল্ডটি শূন্য হতে পারবে না।

public class Student
{
    [Required(ErrorMessage = "Name is required")]
    public string Name { get; set; }
}

2. StringLength

এই অ্যাট্রিবিউটটি একটি স্ট্রিং ফিল্ডের দৈর্ঘ্য সীমাবদ্ধ করতে ব্যবহার করা হয়।

public class Student
{
    [StringLength(50, ErrorMessage = "Name cannot be longer than 50 characters")]
    public string Name { get; set; }
}

3. Range

এই অ্যাট্রিবিউটটি একটি ফিল্ডের জন্য মানের সীমা নির্ধারণ করে। যেমন, সংখ্যার জন্য একটি নির্দিষ্ট পরিসীমা সেট করা।

public class Product
{
    [Range(1, 100, ErrorMessage = "Price must be between 1 and 100")]
    public decimal Price { get; set; }
}

4. EmailAddress

এই অ্যাট্রিবিউটটি একটি স্ট্রিং ফিল্ডের জন্য বৈধ ইমেল ঠিকানা যাচাই করতে ব্যবহৃত হয়।

public class User
{
    [EmailAddress(ErrorMessage = "Invalid Email Address")]
    public string Email { get; set; }
}

5. Compare

এই অ্যাট্রিবিউটটি দুটি প্রপার্টির মান তুলনা করার জন্য ব্যবহৃত হয়, সাধারণত পাসওয়ার্ড এবং কনফার্ম পাসওয়ার্ড ক্ষেত্রের জন্য।

public class User
{
    public string Password { get; set; }
    
    [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
    public string ConfirmPassword { get; set; }
}

Validation কী?

Validation হল ডেটা যাচাই করার প্রক্রিয়া যা মডেল ক্লাসের ডেটা সঠিক এবং মেনে চলে কিনা তা নিশ্চিত করে। ASP.Net MVC-তে Model Validation এর মাধ্যমে, মডেল বাইন্ডিং-এর সময় Data Annotations দ্বারা নির্ধারিত শর্তাবলী অনুযায়ী ইনপুট যাচাই করা হয়। মডেল বৈধ হলে ডেটাবেসে সংরক্ষণ করা হয়, অন্যথায় ব্যবহারকারীকে ত্রুটি বার্তা দেখানো হয়।


মডেল ভ্যালিডেশন প্রক্রিয়া

  1. ভ্যালিডেশন চেক
    যখন ব্যবহারকারী ফর্ম সাবমিট করেন, তখন মডেল বাইন্ডার ডেটা ইনপুটের সঙ্গে মডেল প্রপার্টি বাউন্ড করে এবং Data Annotation অ্যাট্রিবিউটগুলি যাচাই করে।
  2. ভ্যালিডেশন ফলাফল
    যদি ইনপুটটি বৈধ হয়, তাহলে কন্ট্রোলারটি সেই ইনপুটটি গ্রহণ করে এবং পরবর্তী প্রসেসিং করতে পারে। তবে যদি কোন ভুল থাকে, তাহলে ModelState.IsValid চেক করে ভ্যালিডেশন ফলাফল নির্ধারণ করা হয়।

মডেল ভ্যালিডেশন কন্ট্রোলারে ব্যবহার

কন্ট্রোলারে ModelState.IsValid চেক করে ইনপুটের বৈধতা পরীক্ষা করা হয়। যদি মডেল বৈধ না হয়, তাহলে ডেটা আবার ভিউতে পাঠানো হয় এবং ত্রুটি বার্তা দেখানো হয়।

public class UserController : Controller
{
    [HttpPost]
    public ActionResult Register(User user)
    {
        if (ModelState.IsValid)
        {
            // ডেটা সেভ করুন
            return RedirectToAction("Success");
        }
        else
        {
            // ত্রুটি বার্তা সহ ভিউ রিটার্ন করুন
            return View(user);
        }
    }
}

কাস্টম ভ্যালিডেশন (Custom Validation)

ASP.Net MVC-তে আপনি Custom Validation তৈরি করতে পারেন, যেখানে আপনার নিজস্ব লজিক ব্যবহার করে ডেটা যাচাই করা হয়। এজন্য একটি কাস্টম ভ্যালিডেশন অ্যাট্রিবিউট তৈরি করতে হয়।

কাস্টম ভ্যালিডেশন অ্যাট্রিবিউট উদাহরণ:

public class AgeValidation : ValidationAttribute
{
    public override bool IsValid(object value)
    {
        int age = (int)value;
        if (age < 18)
        {
            return false;
        }
        return true;
    }
}

public class User
{
    [AgeValidation(ErrorMessage = "Age must be 18 or older")]
    public int Age { get; set; }
}

সারমর্ম

ASP.Net MVC-তে Data Annotation এবং Validation ব্যবহার করে আপনি সহজেই ইনপুট যাচাই করতে পারেন, যা অ্যাপ্লিকেশনের নিরাপত্তা এবং ডেটা সঠিকতার জন্য অপরিহার্য। Data Annotation দিয়ে মডেল ক্লাসে ভ্যালিডেশন শর্তাবলী নির্ধারণ করা যায় এবং ModelState ব্যবহার করে কন্ট্রোলার থেকে ইনপুট যাচাই করা যায়।

common.content_added_by

ViewModel এর ব্যবহার

249
249

ASP.Net MVC-তে ViewModel এমন একটি ক্লাস, যা ভিউয়ের (View) জন্য প্রয়োজনীয় ডেটা এবং লজিক ধারণ করে। এটি মডেল (Model) থেকে ভিউকে আলাদা রাখতে সাহায্য করে এবং ভিউতে শুধুমাত্র প্রয়োজনীয় ডেটা প্রেরণের জন্য ব্যবহার করা হয়। ViewModel ব্যবহার করলে ডেটা এবং ভিউ ম্যানেজমেন্ট আরও সুসংগঠিত এবং কার্যকর হয়।


ViewModel কী?

ViewModel হলো একটি কাস্টম ক্লাস যা মূলত ভিউয়ের চাহিদা অনুযায়ী ডেটা পাস করার জন্য ব্যবহৃত হয়। এটি একাধিক মডেলের ডেটা একত্রিত করে ভিউতে পাঠানোর সুযোগ দেয়। ভিউ এবং মডেল সরাসরি যুক্ত না হয়ে ViewModel-এর মাধ্যমে একে অপরের সাথে সংযোগ স্থাপন করে।


ViewModel কেন প্রয়োজন?

  • মডেল ক্লাস সরাসরি ভিউতে পাঠানো অনুচিত, কারণ এতে অতিরিক্ত বা সংবেদনশীল ডেটা থাকতে পারে।
  • ভিউতে বিভিন্ন মডেলের ডেটা একত্রিত করে প্রেরণের প্রয়োজন হলে ViewModel ব্যবহার সহজ এবং কার্যকর।
  • ভিউয়ের জন্য প্রয়োজনীয় লজিক বা কাস্টম ডেটা তৈরি করার জন্য ViewModel একটি ভালো সমাধান।

ViewModel ব্যবহার করার ধাপ

ViewModel তৈরি করা
ViewModel হিসেবে একটি নতুন ক্লাস তৈরি করুন, যা ভিউয়ের জন্য প্রয়োজনীয় ডেটার প্রপার্টি ধারণ করবে।

public class StudentViewModel
{
    public string StudentName { get; set; }
    public string ClassName { get; set; }
    public int TotalMarks { get; set; }
}

কন্ট্রোলারে ViewModel ব্যবহার
কন্ট্রোলারে ViewModel-এর মাধ্যমে ডেটা প্রস্তুত করুন এবং ভিউতে পাঠান।

public class StudentController : Controller
{
    public IActionResult Details()
    {
        var viewModel = new StudentViewModel
        {
            StudentName = "Rahim",
            ClassName = "10th Grade",
            TotalMarks = 85
        };

        return View(viewModel);
    }
}

ভিউতে ViewModel ব্যবহার
ভিউতে ViewModel টাইপ ডিক্লেয়ার করুন এবং এর প্রপার্টিগুলো ব্যবহার করুন।

@model StudentViewModel

<h2>Student Details</h2>
<p>Name: @Model.StudentName</p>
<p>Class: @Model.ClassName</p>
<p>Total Marks: @Model.TotalMarks</p>

একাধিক মডেলের ডেটা ViewModel-এ পাঠানো

যদি ভিউতে একাধিক মডেলের ডেটা প্রয়োজন হয়, তবে ViewModel-এ আলাদা প্রপার্টি হিসেবে এই মডেলগুলো সংজ্ঞায়িত করুন।

public class CombinedViewModel
{
    public Student StudentInfo { get; set; }
    public Teacher TeacherInfo { get; set; }
}

কন্ট্রোলারে ব্যবহার:

public IActionResult Overview()
{
    var viewModel = new CombinedViewModel
    {
        StudentInfo = new Student { Name = "Rahim", Class = "10th Grade" },
        TeacherInfo = new Teacher { Name = "Mr. Karim", Subject = "Mathematics" }
    };

    return View(viewModel);
}

ভিউতে ব্যবহার:

@model CombinedViewModel

<h2>Overview</h2>
<p>Student Name: @Model.StudentInfo.Name</p>
<p>Class: @Model.StudentInfo.Class</p>
<p>Teacher Name: @Model.TeacherInfo.Name</p>
<p>Subject: @Model.TeacherInfo.Subject</p>

ViewModel ব্যবহারের সুবিধা

  • মডেল এবং ভিউয়ের মধ্যে আলাদা স্তর তৈরি: ভিউ এবং মডেল সরাসরি যুক্ত না থাকায় কোড আরও রক্ষণাবেক্ষণযোগ্য হয়।
  • ভিউয়ের জন্য প্রয়োজনীয় ডেটা প্রদান: ViewModel শুধুমাত্র প্রয়োজনীয় ডেটা সরবরাহ করে, যা ডেটার নিরাপত্তা নিশ্চিত করে।
  • কাস্টম ডেটা লজিক: ভিউয়ের চাহিদা অনুযায়ী ডেটা ফরম্যাট বা কাস্টম লজিক তৈরি করা সহজ।
  • একাধিক মডেল ম্যানেজমেন্ট: একাধিক মডেলের ডেটা ভিউতে একত্রিত করে প্রদর্শন করা সম্ভব।

সারমর্ম

ViewModel ASP.Net MVC-তে ভিউ এবং মডেলের মধ্যে যোগাযোগ সহজ এবং কার্যকর করে। এটি মডেল এবং ভিউয়ের মধ্যে একটি আলাদা স্তর তৈরি করে, যা ডেটার নিরাপত্তা নিশ্চিত করে এবং অ্যাপ্লিকেশনকে আরও মডুলার ও রক্ষণাবেক্ষণযোগ্য করে তোলে। ViewModel ব্যবহার করে অ্যাপ্লিকেশনের ভিউ ম্যানেজমেন্ট আরও সুগঠিত ও কার্যকর করা সম্ভব।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion